// types/holder.ts - 持卡人相关类型定义文件
// 这个文件使用TypeScript接口定义了持卡人相关的数据结构，确保类型安全

// 定义持卡人信息接口：描述从API获取的持卡人完整信息
// 在TypeScript中，接口用于定义对象的形状，确保数据结构的正确性
export interface CardHolder {
  id: number; // 持卡人ID：数据库中的唯一标识符，数字类型
  cardholder_json: { // 持卡人JSON信息：包含详细的持卡人数据
    cardholderId: string; // 持卡人标识：持卡人的唯一识别码
    cardholderNameAbbreviation: string; // 持卡人姓名缩写：姓名的简短形式
    dateOfBirth: string; // 出生日期：持卡人的生日，字符串格式（如"1990-01-01"）
    email: string; // 邮箱地址：持卡人的电子邮箱
    nationalityCountryCode: string; // 国籍代码：持卡人的国籍代码（如"CN"表示中国）
    mobilePrefix: string; // 手机前缀：国际区号（如"+86"）
    mobile: string; // 手机号码：持卡人的手机号
    residentialState: string; // 居住州省：持卡人居住的州或省份
    status: string; // 状态：持卡人的当前状态（如"active"激活、"inactive"未激活）
  };
  name: string; // 持卡人姓名：持卡人的全名
  createTime: string; // 创建时间：持卡人记录的创建时间，字符串格式
  updateTime: string; // 更新时间：持卡人记录的最后更新时间，字符串格式
}

// 定义创建持卡人表单接口：描述创建新持卡人时需要的数据结构
// 这个接口用于表单验证和数据提交，确保前端表单数据与后端API期望的数据结构匹配
export interface CreateHolderForm {
  name: string; // 姓名：必填字段，持卡人的全名
  idCard: string; // 身份证号：必填字段，持卡人的身份证号码
  phone?: string; // 手机号：可选字段，持卡人的手机号码
  email?: string; // 邮箱：可选字段，持卡人的电子邮箱
  dateOfBirth?: string; // 出生日期：可选字段，持卡人的生日
  nationality?: string; // 国籍：可选字段，持卡人的国籍
  billingState?: string; // 账单州省：可选字段，持卡人的账单地址所在州省
}